﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Mail;
using System.Text;
using System.Web;

namespace CHILIS.Componentes.Adquicisiones.Models
{
    public class Correo
    {

        public static bool EnviarCorreo()
        {
            /*-------------------------MENSAJE DE CORREO----------------------*/

            //Creamos un nuevo Objeto de mensaje
            System.Net.Mail.MailMessage mmsg = new System.Net.Mail.MailMessage();

            //Direccion de correo electronico a la que queremos enviar el mensaje
            mmsg.To.Add("lchang@esan.edu.pe");

            //Nota: La propiedad To es una colección que permite enviar el mensaje a más de un destinatario

            //Asunto
            mmsg.Subject = "Asunto del correo";
            mmsg.SubjectEncoding = System.Text.Encoding.UTF8;

            //Direccion de correo electronico que queremos que reciba una copia del mensaje
            mmsg.Bcc.Add("luis_chang86@hotmail.com"); //Opcional

            //Cuerpo del Mensaje
            mmsg.Body = "Texto del contenio del mensaje de correo";
            mmsg.BodyEncoding = System.Text.Encoding.UTF8;
            mmsg.IsBodyHtml = false; //Si no queremos que se envíe como HTML

            //Correo electronico desde la que enviamos el mensaje
            mmsg.From = new System.Net.Mail.MailAddress("lchang86@gmail.com");


            /*-------------------------CLIENTE DE CORREO----------------------*/

            //Creamos un objeto de cliente de correo
            System.Net.Mail.SmtpClient cliente = new System.Net.Mail.SmtpClient();

            //Hay que crear las credenciales del correo emisor
            cliente.Credentials =
                new System.Net.NetworkCredential("lchang86@gmail.com", "5401460");

            //Lo siguiente es obligatorio si enviamos el mensaje desde Gmail

            cliente.Port = 587;
            cliente.EnableSsl = true;


            cliente.Host = "smtp.gmail.com"; //Para Gmail "smtp.gmail.com";


            /*-------------------------ENVIO DE CORREO----------------------*/

            try
            {
                //Enviamos el mensaje      
                cliente.Send(mmsg);
            }
            catch (System.Net.Mail.SmtpException ex)
            {
                //Aquí gestionamos los errores al intentar enviar el correo
            }

            return true;    
        }



        public static void Send(string Subject, string From, string Body, List<emailAddress> CC, MailAddress To, bool BodyHTML, int nroOrdenCompra, string rutaFile)
        {
            
            try
            {
                MailMessage mail = new MailMessage();
                if (CC != null)
                {
                    foreach (emailAddress ea in CC)
                    {
                        mail.CC.Add(new MailAddress(ea.email, ea.fullname));
                    }
                }

                StringBuilder sb = new StringBuilder();
                sb.Append("&lt;html><head><title>CONFIRMATION EMAIL:</title></head><body>");
                sb.Append("&lt;p>TO: " + To + "/" + "&lt;/p><br/>");

                sb.Append("&lt;p>HERE IS THE LINK:</p><br/>");
                sb.Append("&lt;p>" + "&lt;a href=" + rutaFile + ">" + "Click" + "</a></p><br/>");

                mail.Subject = "CHILIS - ORDEN DE COMPRA N° 0000000" + nroOrdenCompra.ToString() ;
                mail.Body = "Estimado Proveedor, se generó la Orden De Compra N° 0000000" + nroOrdenCompra.ToString() ;
                mail.IsBodyHtml = true;
                mail.From = new MailAddress(From);
                mail.To.Add(To);

                //System.Net.Mail.Attachment attachment;
                //attachment = new System.Net.Mail.Attachment(rutaFile);
                //mail.Attachments.Add(attachment);

                SmtpClient client = new SmtpClient();
                //client.Host = "mail.yourdomain.com";
                client.Port = 25;
                //client.EnableSsl = true;

                client.Host = "172.25.0.42"; 
                client.Send(mail);
            }
            catch
            {
                
            }
        }
        
    }

    public class emailAddress
    {
        public string email;
        public string fullname;

    }
}